package com.dhj.yygh.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dhj.yygh.model.hosp.Hospital;
import com.dhj.yygh.vo.hosp.HospitalQueryVo;
import com.dhj.yygh.vo.order.SignInfoVo;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Map;

/*
医院接口
 */
public interface HospitalService {

    /**
     * 上传医院信息
     *
     * @param parameterMap 医院信息的 Map 集合
     */
    void save(Map<String, Object> parameterMap);


    /**
     * 根据 hoscode 查询医院信息
     *
     * @param hoscode 医院 hoscode
     * @return 返回医院信息实体类
     */
    Hospital getHospitalByHoscode(String hoscode);

    /**
     * 签名校验
     *
     * @param stringObjectMap 参数集合
     * @return 返回是否校验成功
     */
    boolean checkSignKey(Map<String, Object> stringObjectMap);

    /**
     * 分页查询医院信息
     *
     * @param page            当前页
     * @param pageCount       每页记录数
     * @param hospitalQueryVo 条件 vo 对象
     * @return 返回分页对象
     */
    Page<Hospital> selectHospitalPage(Integer page, Integer pageCount, HospitalQueryVo hospitalQueryVo);

    /**
     * 按照 id 更新医院状态
     *
     * @param id     id
     * @param status 状态值
     * @return 返回影响的行数
     */
    Hospital updateHospitalStatus(String id, Integer status);

    /**
     * 根据 id 获取医院信息
     *
     * @param id
     * @return
     */
    Map<String, Object> getHospitalDetailsById(String id);


    /**
     * 根据医院名称进行模糊查询
     *
     * @param hosname 医院名称
     * @return 返回结果的 list 集合
     */
    List<Hospital> getHospitalByHosname(String hosname);

    /**
     * 根据 hoscode 获取医院详情
     *
     * @param hoscode 医院代码
     * @return 返回 Map 集合
     */
    Map<String, Object> getHospitalDetailsByHoscode(String hoscode);

    /**
     * 根据医院代码获取医院签名相关信息
     *
     * @param hoscode 医院代码
     * @return 返回签名相关信息的 vo 对象
     */
    SignInfoVo getSignInfoVo(String hoscode);
}
